In the field of optical communications, optoelectronic modules typically comprise a transmitter and a receiver module. Overall, an optoelectronic module is currently designed to provide optimum performance at a single data rate, for example, 2.5 Gbps. In this particular context, optimal performance is considered to be configuration of operating characteristics of the receiver module to produce a longest achievable transmission distance at the single data rate. However, such optoelectronic modules are also capable of providing sub-optimal performance at other data rates, for example 1.25 Gbps. It is possible to optimise performance of the receiver module for the other data rates in order to provide a longest possible transmission distance for each data rate desired.
In providing the possibility of operating the optoelectronic module at different data rates, a need to determine the data rate of received signals follows. In the context of the OSI communications model, known data rate sensing techniques are typically carried out at a higher level than the physical level by detecting packets or bytes containing balanced data. However, such techniques require the use of a considerable quantity of additional circuitry running at the data rate to be identified, and almost inevitably result in unacceptably high power demands and design complexity. Additionally, such detection techniques are usually dedicated to a particular data format and so modification of the detection technique is required for different data formats, for example Synchronous Optical NETwork (SONET), Ethernet or Fibre Channel (FC) system signals, communicated through an optical communications network employing multi-data rate optoelectronic modules.
As an alternative to automatic data rate recognition, the data rate at which the receiver module operates can be set manually from an external source, for example via a hardware connector Input/Output (I/O) line or a software register or memory address. In many known systems the host, which is the source of the data signal, identifies the data rate and transmits that information to the receiver module, at which operation is to take place. For example, the host could extract the datarate from information coded at a higher level in the data packets—such as particular pre agreed bit sequences, otherwise known as a training sequence. Alternatively both ends of a link could start-up in the lowest data rate mode, establish a link and then have an agreed protocol to test the link at higher and higher rates until the maximum usable rate is identified. All these type of systems require the host to tell the receiver module what rate to run at, so the host is the controlling party, not the receiver module.